package com.itcncp.ucenter.dao.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.itcncp.common.plugin.ToStringSerializer;

import java.io.Serializable;
import java.util.Date;

public class UserCarInfo implements Serializable {
    /**
     * 用户id
     *
     * @mbg.generated
     */
    @JSONField(serializeUsing= ToStringSerializer.class)
    private Long userId;

    /**
     * 车牌号
     *
     * @mbg.generated
     */
    private String plate;

    /**
     * 车牌颜色
     *
     * @mbg.generated
     */
    private Byte plateColor;

    /**
     * 收费车型 1-4:1-4型客车；11-15&ldquo;：1-5型货车
     *
     * @mbg.generated
     */
    private Byte carClass;

    /**
     * 创建时间
     *
     * @mbg.generated
     */
    private Date createTime;

    /**
     * 修改时间
     *
     * @mbg.generated
     */
    private Date updateTime;

    /**
     * 行驶证车辆类型
     *
     * @mbg.generated
     */
    private String vehicleType;

    /**
     * 行驶证品牌型号
     *
     * @mbg.generated
     */
    private String vehicleModel;

    /**
     * 行驶证车辆使用性质 1.家庭自用 2.非营业客车 3.营业客车 4.非营业货车 5.营业货车 6.特种车 7.挂车
     *
     * @mbg.generated
     */
    private Byte useCharacter;

    /**
     * 行驶证车辆识别代号
     *
     * @mbg.generated
     */
    private String vin;

    /**
     * 行驶证车辆发动机号
     *
     * @mbg.generated
     */
    private String engine;

    /**
     * 行驶证注册日期
     *
     * @mbg.generated
     */
    private Date registerDate;

    /**
     * 行驶证发证日期
     *
     * @mbg.generated
     */
    private Date issueDate;

    /**
     * 行驶证核定载人数
     *
     * @mbg.generated
     */
    private Integer approvedCount;

    /**
     * 行驶证核定载质量
     *
     * @mbg.generated
     */
    private Integer permittedWeight;

    /**
     * 车牌审核 1、未审核 2、审核通过 3、审核未通过
     *
     * @mbg.generated
     */
    private Byte isCheck;

    /**
     * 审核提示
     *
     * @mbg.generated
     */
    private String checkMsg;

    /**
     * 驾驶证图片
     *
     * @mbg.generated
     */
    private String drivingLicence;

    /**
     * 车辆行驶证图片
     *
     * @mbg.generated
     */
    private String vehicleLicence;

    /**
     * 车辆整车照片
     *
     * @mbg.generated
     */
    private String vehiclePhotos;

    /**
     * 车辆品牌信息
     *
     * @mbg.generated
     */
    private Integer carBrandId;

    /**
     * 车辆型号信息
     *
     * @mbg.generated
     */
    private Integer carBrandTypeId;

    /**
     * 数据是否删除  1、删除  2、不删除
     *
     * @mbg.generated
     */
    private Byte del;

    /**
     * 备注
     *
     * @mbg.generated
     */
    private String remark;

    private static final long serialVersionUID = 1L;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getPlate() {
        return plate;
    }

    public void setPlate(String plate) {
        this.plate = plate;
    }

    public Byte getPlateColor() {
        return plateColor;
    }

    public void setPlateColor(Byte plateColor) {
        this.plateColor = plateColor;
    }

    public Byte getCarClass() {
        return carClass;
    }

    public void setCarClass(Byte carClass) {
        this.carClass = carClass;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getVehicleType() {
        return vehicleType;
    }

    public void setVehicleType(String vehicleType) {
        this.vehicleType = vehicleType;
    }

    public String getVehicleModel() {
        return vehicleModel;
    }

    public void setVehicleModel(String vehicleModel) {
        this.vehicleModel = vehicleModel;
    }

    public Byte getUseCharacter() {
        return useCharacter;
    }

    public void setUseCharacter(Byte useCharacter) {
        this.useCharacter = useCharacter;
    }

    public String getVin() {
        return vin;
    }

    public void setVin(String vin) {
        this.vin = vin;
    }

    public String getEngine() {
        return engine;
    }

    public void setEngine(String engine) {
        this.engine = engine;
    }

    public Date getRegisterDate() {
        return registerDate;
    }

    public void setRegisterDate(Date registerDate) {
        this.registerDate = registerDate;
    }

    public Date getIssueDate() {
        return issueDate;
    }

    public void setIssueDate(Date issueDate) {
        this.issueDate = issueDate;
    }

    public Integer getApprovedCount() {
        return approvedCount;
    }

    public void setApprovedCount(Integer approvedCount) {
        this.approvedCount = approvedCount;
    }

    public Integer getPermittedWeight() {
        return permittedWeight;
    }

    public void setPermittedWeight(Integer permittedWeight) {
        this.permittedWeight = permittedWeight;
    }

    public Byte getIsCheck() {
        return isCheck;
    }

    public void setIsCheck(Byte isCheck) {
        this.isCheck = isCheck;
    }

    public String getCheckMsg() {
        return checkMsg;
    }

    public void setCheckMsg(String checkMsg) {
        this.checkMsg = checkMsg;
    }

    public String getDrivingLicence() {
        return drivingLicence;
    }

    public void setDrivingLicence(String drivingLicence) {
        this.drivingLicence = drivingLicence;
    }

    public String getVehicleLicence() {
        return vehicleLicence;
    }

    public void setVehicleLicence(String vehicleLicence) {
        this.vehicleLicence = vehicleLicence;
    }

    public String getVehiclePhotos() {
        return vehiclePhotos;
    }

    public void setVehiclePhotos(String vehiclePhotos) {
        this.vehiclePhotos = vehiclePhotos;
    }

    public Integer getCarBrandId() {
        return carBrandId;
    }

    public void setCarBrandId(Integer carBrandId) {
        this.carBrandId = carBrandId;
    }

    public Integer getCarBrandTypeId() {
        return carBrandTypeId;
    }

    public void setCarBrandTypeId(Integer carBrandTypeId) {
        this.carBrandTypeId = carBrandTypeId;
    }

    public Byte getDel() {
        return del;
    }

    public void setDel(Byte del) {
        this.del = del;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", userId=").append(userId);
        sb.append(", plate=").append(plate);
        sb.append(", plateColor=").append(plateColor);
        sb.append(", carClass=").append(carClass);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", vehicleType=").append(vehicleType);
        sb.append(", vehicleModel=").append(vehicleModel);
        sb.append(", useCharacter=").append(useCharacter);
        sb.append(", vin=").append(vin);
        sb.append(", engine=").append(engine);
        sb.append(", registerDate=").append(registerDate);
        sb.append(", issueDate=").append(issueDate);
        sb.append(", approvedCount=").append(approvedCount);
        sb.append(", permittedWeight=").append(permittedWeight);
        sb.append(", isCheck=").append(isCheck);
        sb.append(", checkMsg=").append(checkMsg);
        sb.append(", drivingLicence=").append(drivingLicence);
        sb.append(", vehicleLicence=").append(vehicleLicence);
        sb.append(", vehiclePhotos=").append(vehiclePhotos);
        sb.append(", carBrandId=").append(carBrandId);
        sb.append(", carBrandTypeId=").append(carBrandTypeId);
        sb.append(", del=").append(del);
        sb.append(", remark=").append(remark);
        sb.append("]");
        return sb.toString();
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        UserCarInfo other = (UserCarInfo) that;
        return (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getPlate() == null ? other.getPlate() == null : this.getPlate().equals(other.getPlate()))
            && (this.getPlateColor() == null ? other.getPlateColor() == null : this.getPlateColor().equals(other.getPlateColor()))
            && (this.getCarClass() == null ? other.getCarClass() == null : this.getCarClass().equals(other.getCarClass()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getVehicleType() == null ? other.getVehicleType() == null : this.getVehicleType().equals(other.getVehicleType()))
            && (this.getVehicleModel() == null ? other.getVehicleModel() == null : this.getVehicleModel().equals(other.getVehicleModel()))
            && (this.getUseCharacter() == null ? other.getUseCharacter() == null : this.getUseCharacter().equals(other.getUseCharacter()))
            && (this.getVin() == null ? other.getVin() == null : this.getVin().equals(other.getVin()))
            && (this.getEngine() == null ? other.getEngine() == null : this.getEngine().equals(other.getEngine()))
            && (this.getRegisterDate() == null ? other.getRegisterDate() == null : this.getRegisterDate().equals(other.getRegisterDate()))
            && (this.getIssueDate() == null ? other.getIssueDate() == null : this.getIssueDate().equals(other.getIssueDate()))
            && (this.getApprovedCount() == null ? other.getApprovedCount() == null : this.getApprovedCount().equals(other.getApprovedCount()))
            && (this.getPermittedWeight() == null ? other.getPermittedWeight() == null : this.getPermittedWeight().equals(other.getPermittedWeight()))
            && (this.getIsCheck() == null ? other.getIsCheck() == null : this.getIsCheck().equals(other.getIsCheck()))
            && (this.getCheckMsg() == null ? other.getCheckMsg() == null : this.getCheckMsg().equals(other.getCheckMsg()))
            && (this.getDrivingLicence() == null ? other.getDrivingLicence() == null : this.getDrivingLicence().equals(other.getDrivingLicence()))
            && (this.getVehicleLicence() == null ? other.getVehicleLicence() == null : this.getVehicleLicence().equals(other.getVehicleLicence()))
            && (this.getVehiclePhotos() == null ? other.getVehiclePhotos() == null : this.getVehiclePhotos().equals(other.getVehiclePhotos()))
            && (this.getCarBrandId() == null ? other.getCarBrandId() == null : this.getCarBrandId().equals(other.getCarBrandId()))
            && (this.getCarBrandTypeId() == null ? other.getCarBrandTypeId() == null : this.getCarBrandTypeId().equals(other.getCarBrandTypeId()))
            && (this.getDel() == null ? other.getDel() == null : this.getDel().equals(other.getDel()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getPlate() == null) ? 0 : getPlate().hashCode());
        result = prime * result + ((getPlateColor() == null) ? 0 : getPlateColor().hashCode());
        result = prime * result + ((getCarClass() == null) ? 0 : getCarClass().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getVehicleType() == null) ? 0 : getVehicleType().hashCode());
        result = prime * result + ((getVehicleModel() == null) ? 0 : getVehicleModel().hashCode());
        result = prime * result + ((getUseCharacter() == null) ? 0 : getUseCharacter().hashCode());
        result = prime * result + ((getVin() == null) ? 0 : getVin().hashCode());
        result = prime * result + ((getEngine() == null) ? 0 : getEngine().hashCode());
        result = prime * result + ((getRegisterDate() == null) ? 0 : getRegisterDate().hashCode());
        result = prime * result + ((getIssueDate() == null) ? 0 : getIssueDate().hashCode());
        result = prime * result + ((getApprovedCount() == null) ? 0 : getApprovedCount().hashCode());
        result = prime * result + ((getPermittedWeight() == null) ? 0 : getPermittedWeight().hashCode());
        result = prime * result + ((getIsCheck() == null) ? 0 : getIsCheck().hashCode());
        result = prime * result + ((getCheckMsg() == null) ? 0 : getCheckMsg().hashCode());
        result = prime * result + ((getDrivingLicence() == null) ? 0 : getDrivingLicence().hashCode());
        result = prime * result + ((getVehicleLicence() == null) ? 0 : getVehicleLicence().hashCode());
        result = prime * result + ((getVehiclePhotos() == null) ? 0 : getVehiclePhotos().hashCode());
        result = prime * result + ((getCarBrandId() == null) ? 0 : getCarBrandId().hashCode());
        result = prime * result + ((getCarBrandTypeId() == null) ? 0 : getCarBrandTypeId().hashCode());
        result = prime * result + ((getDel() == null) ? 0 : getDel().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        return result;
    }
}